ποΈGitΠ―ΡΠ°ποΈ
Node / meshtastic / Meshtastic-Android / files / specs / 20260711-153545-message-markdown-styling / contracts / inline-markdown-parser.md
specs/20260711-153545-message-markdown-styling/contracts/inline-markdown-parser.md bc4e9da3ad7a2a22768cbaecc75810e018bc40e2 (bc4e9da3) Text, 2.16 KB
Contract: Inline Markdown Parser
Location: T383838core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/component/InlineMarkdown.kt
Kind: pure function, no Compose/Android deps, T383838commonTest-covered.
Backing library: T383838org.jetbrains:markdown 0.7.5 (AST).
Signature (illustrative)
T282828
Tff7b72internal Tff7b72fun Td2a8ffparseInlineMarkdownTb4b4b4(Te6edf3sourceTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3InlineMarkdownResult
β’ T383838source β the text to parse, AFTER mention substitution (display-space input; see AutoLinkText contract for ordering).
β’ Returns T383838InlineMarkdownResult(displayText, styleSpans, linkSpans) (see data-model.md).
Behavioral contract
ββββββββ¬ββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ID β Given β Then β
ββββββββΌββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β P-1 β T383838a **b** c β displayText T383838a b c; one T383838StyleSpan(Bold) over T383838b β
β P-2 β T383838a *b* c β italic span over T383838b; single T383838* not treated as bold β
β P-3 β T383838a ***b*** c β bold+italic spans both covering T383838b (overlap allowed) β
β P-4 β T383838a ~~b~~ c β strikethrough span over T383838b β
β P-5 β BT383838 a b*cT383838 d β code span over T383838b*c; the T383838* inside is NOT italic (code pβ¦ β
β P-6 β T383838